home *** CD-ROM | disk | FTP | other *** search
/ 220 Jogos / 220 jogos.iso / tabuleiro / clica2 / Help / candy_files / SCRIPT.JS < prev    next >
Encoding:
Text File  |  2001-09-22  |  16.8 KB  |  628 lines

  1.  
  2. function LoadSld( slideId )
  3. {
  4.     if( !g_supportsPPTHTML ) return
  5.     if( slideId )
  6.         parent.SldUpdated(slideId)
  7.     g_origSz=parseInt(SlideObj.style.fontSize)
  8.     g_origH=SlideObj.style.posHeight
  9.     g_origW=SlideObj.style.posWidth
  10.     g_scaleHyperlinks=(document.all.tags("AREA").length>0)
  11.     if( g_scaleHyperlinks )
  12.         InitHLinkArray()
  13.     if( g_scaleInFrame||(IsWin("PPTSld") && parent.IsFullScrMode() ) )
  14.         document.body.scroll="no"
  15.     _RSW()
  16.     if( IsWin("PPTSld") && parent.IsFullScrMode() )    {
  17.         document.oncontextmenu=parent._CM;
  18.         self.focus()
  19.     }
  20. }
  21. function MakeSldVis( fTrans ) 
  22. {
  23.     fTrans=fTrans && g_showAnimation
  24.     if( fTrans )
  25.     {
  26.         if( g_bgSound ) {
  27.             idx=g_bgSound.indexOf(",");
  28.             pptSound.src=g_bgSound.substr( 0, idx );
  29.             pptSound.loop= -(parseInt(g_bgSound.substr(idx+1)));
  30.         }
  31.         SlideObj.filters.revealtrans.Apply()
  32.     }
  33.     SlideObj.style.visibility="visible"
  34.     if( fTrans )
  35.         SlideObj.filters.revealtrans.Play()
  36. }
  37. function MakeNotesVis() 
  38. {
  39.     if( !IsNts() ) return false 
  40.     SlideObj.style.display="none"
  41.     nObj = document.all.item("NotesObj")
  42.     parent.SetHasNts(0)
  43.     if( nObj ) { 
  44.         nObj.style.display=""
  45.         parent.SetHasNts(1)
  46.     }
  47.     return 1
  48. }
  49. function Redirect( frmId,sId )
  50. {
  51.     var str=document.location.hash,idx=str.indexOf('#')
  52.     if(idx>=0) str=str.substr(1);
  53.     if( window.name != frmId && ( sId != str) ) {
  54.         obj = document.all.item("Main-File")
  55.         window.location.href=obj.href+"#"+sId
  56.         return 1
  57.     }
  58.     return 0
  59. }
  60. function HideMenu() { if( frames["PPTSld"] && PPTSld.document.all.item("ctxtmenu") && PPTSld.ctxtmenu.style.display!="none" ) { PPTSld.ctxtmenu.style.display='none'; return true } return false }
  61. function IsWin( name ) { return window.name == name }
  62. function IsNts() { return IsWin("PPTNts") }
  63. function IsSldOrNts() { return( IsWin("PPTSld")||IsWin("PPTNts") ) }
  64. function SupportsPPTAnimation() { return( navigator.platform == "Win32" && navigator.appVersion.indexOf("Windows")>0 ) }
  65. function SupportsPPTHTML()
  66. {
  67.     var appVer=navigator.appVersion, msie=appVer.indexOf("MSIE "), ver=0
  68.     if( msie >= 0 )
  69.         ver=parseFloat( appVer.substring( msie+5, appVer.indexOf(";",msie) ) )
  70.     else
  71.         ver=parseInt(appVer)
  72.  
  73.     return( ver >= 4 && msie >= 0 )
  74. }
  75. var MHTMLPrefix = CalculateMHTMLPrefix(); 
  76. function CalculateMHTMLPrefix()
  77. {
  78.     if ( document.location.protocol == 'mhtml:') { 
  79.         href=new String(document.location.href) 
  80.         Start=href.indexOf('!')+1 
  81.         End=href.lastIndexOf('/')+1 
  82.         if (End < Start) 
  83.             return href.substring(0, Start) 
  84.         else 
  85.         return href.substring(0, End) 
  86.     }
  87.     return '';
  88. }
  89.  
  90. function _RSW()
  91. {
  92.     if( !g_supportsPPTHTML || IsNts() ||
  93.       ( !g_scaleInFrame && (( window.name != "PPTSld" ) || !parent.IsFullScrMode()) ) )
  94.         return
  95.  
  96.     cltWidth=document.body.clientWidth
  97.     cltHeight=document.body.clientHeight
  98.     factor=(1.0*cltWidth)/g_origW
  99.     if( cltHeight < g_origH*factor )
  100.         factor=(1.0*cltHeight)/g_origH
  101.  
  102.     newSize = g_origSz * factor
  103.     if( newSize < 1 ) newSize=1
  104.  
  105.     s=SlideObj.style
  106.     s.fontSize=newSize+"px"
  107.     s.posWidth=g_origW*factor
  108.     s.posHeight=g_origH*factor
  109.     s.posLeft=(cltWidth-s.posWidth)/2
  110.     s.posTop=(cltHeight-s.posHeight)/2
  111.  
  112.     if( g_scaleHyperlinks )
  113.         ScaleHyperlinks( factor )
  114. }
  115.  
  116. function _KPH()
  117.   if( IsNts() ) return;
  118.  
  119.   if( !parent.IsFramesMode() && event.keyCode == 27 && !parent.HideMenu() )
  120.     parent.window.close( self );
  121.   else if( event.keyCode == 32 )
  122.   {
  123.     if( window.name == "PPTSld" )
  124.       parent.PPTSld.DocumentOnClick();
  125.     else
  126.       parent.GoToNextSld();
  127.   }
  128. }
  129.  
  130. function DocumentOnClick()
  131. {
  132.     if( IsNts() || parent.HideMenu() ) return;
  133.     if( ( g_allowAdvOnClick && !parent.IsFramesMode() ) ||
  134.         (event && (event.keyCode==32) ) )
  135.         parent.GoToNextSld();
  136. }
  137.  
  138.  
  139.  
  140. var g_supportsPPTHTML = SupportsPPTHTML(), g_scaleInFrame = true, gId="", g_bgSound="",
  141.     g_scaleHyperlinks = false, g_allowAdvOnClick = true, g_showInBrowser = false;
  142. var g_showAnimation = g_supportsPPTHTML && SupportsPPTAnimation() && ( (window.name=="PPTSld" && !parent.IsFramesMode()) || g_showInBrowser );var g_hasTrans = false, g_autoTrans = false, g_transSecs = 0;
  143. var g_animManager = null;
  144.  
  145. var ENDSHOW_MESG="End of slide show, click to exit.", SCREEN_MODE="Frames", gIsEndShow=0, NUM_VIS_SLDS=19, SCRIPT_HREF="script.js", FULLSCR_HREF="fullscreen.htm";
  146. var gCurSld = gPrevSld = 1, g_offset = 0, gNtsOpen = gHasNts = gOtlTxtExp = gNarrationPaused = false, gOtlOpen = true
  147. window.gPPTHTML=SupportsPPTHTML()
  148.  
  149. function UpdNtsPane(){ PPTNts.location.replace( MHTMLPrefix+GetHrefObj( gCurSld ).mNtsHref ) }
  150. function UpdNavPane( sldIndex ){ if(gNavLoaded) PPTNav.UpdNav() }
  151. function UpdOtNavPane(){ if(gOtlNavLoaded) PPTOtlNav.UpdOtlNav() }
  152. function UpdOtlPane(){ if(gOtlLoaded) PPTOtl.UpdOtl() }
  153. function SetHasNts( fVal )
  154. {
  155.     if( gHasNts != fVal ) {
  156.         gHasNts=fVal
  157.         UpdNavPane()
  158.     }
  159. }
  160. function ToggleOtlText()
  161. {
  162.     gOtlTxtExp=!gOtlTxtExp
  163.     UpdOtlPane()
  164. }
  165. function ToggleOtlPane()
  166. {
  167.     frmset=document.all("PPTHorizAdjust")
  168.     frm=document.all("PPTOtl")
  169.  
  170.     if( gOtlOpen )
  171.         frmset.cols="*,100%"
  172.     else
  173.         frmset.cols="20%,80%"
  174.  
  175.     gOtlOpen=!gOtlOpen
  176.     frm.noResize=!frm.noResize
  177.     UpdOtNavPane()
  178. }
  179. function ToggleNtsPane()
  180. {
  181.     frmset=document.all("PPTVertAdjust")
  182.     frm=document.all("PPTNts")
  183.  
  184.     if( gNtsOpen )
  185.         frmset.rows="100%,*"
  186.     else
  187.         frmset.rows="80%,20%"
  188.  
  189.     gNtsOpen=!gNtsOpen
  190.     UpdNtsPane()
  191. }
  192. function FullScreen(){ window.open( MHTMLPrefix+FULLSCR_HREF,null,"fullscreen=yes" ) }
  193. function ToggleVNarration()
  194. {
  195.     rObj=PPTSld.document.all("NSPlay")
  196.     if( rObj ) {
  197.         if( gNarrationPaused )
  198.             rObj.Play()
  199.         else
  200.             rObj.Pause()
  201.  
  202.         gNarrationPaused=!gNarrationPaused
  203.     }
  204. }
  205. function GetCurSldNum()
  206. {   
  207.     obj=GetHrefObj(gCurSld)
  208.     if( obj.mOrigVis == 1 )
  209.         return obj.mSldIdx
  210.     else   
  211.         return gCurSld
  212. }
  213. function GetNumSlds()
  214. {   
  215.     if( GetHrefObj(gCurSld).mOrigVis == 1 )
  216.         return NUM_VIS_SLDS
  217.     else
  218.         return gDocTable.length
  219. }
  220. function GetSldNum( href )
  221. {
  222.     for(ii=0; ii<gDocTable.length; ii++) {
  223.         if ( gDocTable[ii].mSldHref == href )
  224.             return ii+1
  225.     }
  226.     return 1
  227. }
  228. function GetHrefObj( sldIdx ){ return gDocTable[sldIdx-1] }
  229. function IsFramesMode(){ return ( SCREEN_MODE == "Frames" ) }
  230. function IsFullScrMode(){ return ( SCREEN_MODE == "FullScreen" ) }
  231. function GoToNextSld()
  232. {   
  233.     ii=gCurSld + 1
  234.     if( GetHrefObj( ii-1 ).mOrigVis == 0 ) {
  235.         if( ii<=gDocTable.length ) {
  236.             obj=GetHrefObj(ii)
  237.             obj.mVis=1
  238.             GoToSld(obj.mSldHref)
  239.             return
  240.         }        
  241.     }
  242.     else {
  243.         obj=GetHrefObj( ii )
  244.         while ( obj && ( obj.mOrigVis == 0 ) )
  245.             obj=GetHrefObj(ii++)
  246.         if( obj && obj.mOrigVis ) {
  247.             GoToSld(obj.mSldHref)    
  248.             return
  249.         }    
  250.     }
  251.     if( !IsFramesMode() ) EndShow()
  252. }
  253. function GoToPrevSld()
  254. {
  255.     ii=gCurSld-1
  256.     if( ii > 0 ) {      
  257.         obj=GetHrefObj(ii)
  258.         while ( ( obj.mVis == 0 ) && ( ii>0 ) )
  259.             obj=GetHrefObj(ii--)
  260.         GoToSld(obj.mSldHref)
  261.     }
  262. }
  263. function GoToFirst(){ GoToSld( GetHrefObj(1).mSldHref ) }
  264. function GoToLast()
  265. {
  266.     ii=gDocTable.length
  267.     if( ii != gCurSld )
  268.         GoToSld( GetHrefObj(ii).mSldHref )
  269. }
  270. function GoToSld( href )
  271. {
  272.     if( PPTSld.event ) PPTSld.event.cancelBubble=true
  273.     GetHrefObj( GetSldNum(href) ).mVis=1
  274.     PPTSld.location.href=MHTMLPrefix+href
  275. }
  276. function SldUpdated( id )
  277. {
  278.     if( id == GetHrefObj(gCurSld).mSldHref ) return
  279.     gPrevSld=gCurSld
  280.     gCurSld=GetSldNum(id)
  281.     if( IsFramesMode() ) {
  282.         UpdNavPane(); UpdOtlPane(); UpdNtsPane()
  283.     }
  284. }
  285.  
  286. function PrevSldViewed(){ GoToSld( GetHrefObj(gPrevSld).mSldHref ) }
  287. function HasPrevSld() { return ( gIsEndShow || ( gCurSld != 1 && GetHrefObj( gCurSld-1 ).mVis == 1 )||( GetCurSldNum() > 1 ) ) }
  288. function HasNextSld() { return (GetCurSldNum() != GetNumSlds()) }
  289. function EndShow()
  290. {
  291.     if( PPTSld.event ) PPTSld.event.cancelBubble=true
  292.  
  293.     doc=PPTSld.document
  294.     doc.open()
  295.     doc.writeln('<html><head><script defer>function CloseWindow(){ if( parent.HideMenu() ) return; if( !parent.IsFramesMode() && event && (event.keyCode==27 || event.keyCode==32 || event.type=="click" ) ) parent.window.close( self ); } function Unload() { parent.gIsEndShow=0; } function SetupEndShow() { parent.gIsEndShow=1; document.body.scroll="no"; document.onkeypress=CloseWindow; document.onclick=CloseWindow; document.oncontextmenu=parent._CM; }</script></head><body bgcolor=black onload=SetupEndShow() onunload=Unload()><center><p><font face=Tahoma color=white size=2><br><b>' + ENDSHOW_MESG + '</b></font></p></center></body></html>')
  296.     doc.close()
  297. }
  298. function SetSldVisited(){ gDocTable[gCurSld-1].mVisited=true }
  299. function IsSldVisited(){ return gDocTable[gCurSld-1].mVisited }
  300. function hrefList( sldHref, visible, sldIdx )
  301. {
  302.     this.mSldHref= this.mNtsHref = sldHref
  303.     this.mSldIdx = sldIdx
  304.     this.mOrigVis= this.mVis = visible
  305.     this.mVisited= false
  306. }
  307. var gDocTable = new Array(
  308.    new hrefList("slide0001.htm", 1, 1),
  309.    new hrefList("slide0019.htm", 1, 2),
  310.    new hrefList("slide0002.htm", 1, 3),
  311.    new hrefList("slide0003.htm", 1, 4),
  312.    new hrefList("slide0004.htm", 1, 5),
  313.    new hrefList("slide0005.htm", 1, 6),
  314.    new hrefList("slide0012.htm", 1, 7),
  315.    new hrefList("slide0014.htm", 1, 8),
  316.    new hrefList("slide0013.htm", 1, 9),
  317.    new hrefList("slide0006.htm", 1, 10),
  318.    new hrefList("slide0007.htm", 1, 11),
  319.    new hrefList("slide0008.htm", 1, 12),
  320.    new hrefList("slide0015.htm", 1, 13),
  321.    new hrefList("slide0009.htm", 1, 14),
  322.    new hrefList("slide0016.htm", 1, 15),
  323.    new hrefList("slide0010.htm", 1, 16),
  324.    new hrefList("slide0017.htm", 1, 17),
  325.    new hrefList("slide0018.htm", 1, 18),
  326.    new hrefList("slide0011.htm", 1, 19)
  327. );
  328.  
  329. function ImgBtn( oId,bId,w,action )
  330. {
  331.     var t=this
  332.     t.Perform    = _IBP
  333.     t.SetActive  = _IBSetA
  334.     t.SetInactive= _IBSetI
  335.     t.SetPressed = _IBSetP
  336.     t.SetDisabled= _IBSetD
  337.     t.Enabled    = _IBSetE
  338.     t.ChangeIcon = null
  339.     t.UserAction = action
  340.     t.ChgState   = _IBUI
  341.     t.mObjId   = oId
  342.     t.mBorderId= bId
  343.     t.mWidth   = w
  344.     t.mIsOn    = t.mCurState = 0
  345. }
  346. function _IBSetA()
  347. {
  348.     if( this.mIsOn ) {
  349.         obj=this.ChgState( gHiliteClr,gShadowClr,2 )
  350.         obj.style.posTop=0
  351.     }
  352. }
  353. function _IBSetI()
  354. {
  355.     if( this.mIsOn ) {
  356.         obj=this.ChgState( gFaceClr,gFaceClr,1 )
  357.         obj.style.posTop=0 
  358.     }
  359. }
  360. function _IBSetP()
  361. {
  362.     if( this.mIsOn ) {
  363.         obj=this.ChgState( gShadowClr,gHiliteClr,2 )
  364.         obj.style.posLeft+=1; obj.style.posTop+=1
  365.     }
  366. }
  367. function _IBSetD()
  368. {  
  369.     obj=this.ChgState( gFaceClr,gFaceClr,0 )
  370.     obj.style.posTop=0 
  371. }
  372. function _IBSetE( state )
  373. {
  374.     var t=this
  375.     GetObj( t.mBorderId ).style.visibility="visible"
  376.     if( state != t.mIsOn ) {
  377.         t.mIsOn=state
  378.         if( state )
  379.             t.SetInactive()
  380.         else
  381.             t.SetDisabled()
  382.     }
  383. }
  384. function _IBP()
  385. {
  386.     var t=this
  387.     if( t.mIsOn ) {
  388.         if( t.UserAction != null )
  389.             t.UserAction()
  390.         if( t.ChangeIcon ) {
  391.             obj=GetObj(t.mObjId)
  392.             if( t.ChangeIcon() )
  393.                 obj.style.posLeft=obj.style.posLeft+(t.mCurState-4)*t.mWidth
  394.             else
  395.                 obj.style.posLeft=obj.style.posLeft+(t.mCurState-0)*t.mWidth
  396.         }
  397.         t.SetActive()
  398.     }  
  399. }
  400. function _IBUI( clr1,clr2,nextState )
  401. {
  402.     var t=this
  403.     SetBorder( GetObj( t.mBorderId ),clr1,clr2 )
  404.     obj=GetObj( t.mObjId )
  405.     obj.style.posLeft=obj.style.posLeft+(t.mCurState-nextState)*t.mWidth-obj.style.posTop
  406.     t.mCurState=nextState
  407.     return obj
  408. }
  409. function TxtBtn( oId,oeId,action,chkState )
  410. {
  411.     var t=this
  412.     t.Perform    = _TBP
  413.     t.SetActive  = _TBSetA
  414.     t.SetInactive= _TBSetI
  415.     t.SetPressed = _TBSetP
  416.     t.SetDisabled= _TBSetD
  417.     t.SetEnabled = _TBSetE
  418.     t.GetState   = chkState
  419.     t.UserAction = action
  420.     t.ChgState   = _TBUI
  421.     t.mObjId      = oId
  422.     t.m_elementsId= oeId
  423.     t.mIsOn       = 1
  424. }
  425. function _TBSetA()
  426. {
  427.     var t=this
  428.     if( t.mIsOn && !t.GetState() )
  429.         t.ChgState( gHiliteClr,gShadowClr,0,0 )
  430. }
  431. function _TBSetI()
  432. {
  433.     var t=this
  434.     if( t.mIsOn && !t.GetState() )
  435.         t.ChgState( gFaceClr,gFaceClr,0,0 )
  436. }
  437. function _TBSetP()
  438. {
  439.     if( this.mIsOn )
  440.         this.ChgState( gShadowClr,gHiliteClr,1,1 )
  441. }
  442. function _TBSetD()
  443. {   
  444.     this.ChgState( gFaceClr,gFaceClr,0,0 )
  445.     this.mIsOn = 0
  446. }
  447. function _TBSetE()
  448. {
  449.     var t=this
  450.     if( !t.GetState() )
  451.         t.ChgState( gFaceClr,gFaceClr,0,0 )
  452.     else
  453.         t.ChgState( gShadowClr,gHiliteClr,1,1 )
  454.     t.mIsOn = 1
  455. }
  456. function _TBP()
  457. {
  458.     var t=this
  459.     if( t.mIsOn ) { 
  460.         if( t.UserAction != null )
  461.             t.UserAction()
  462.         if( t.GetState() )
  463.             t.SetPressed()
  464.         else
  465.             t.SetActive()
  466.     }  
  467. }
  468. function _TBUI( clr1,clr2,lOffset,tOffset )
  469. {
  470.     SetBorder( GetObj( this.mObjId ),clr1,clr2 )
  471.     Offset( GetObj( this.m_elementsId ),lOffset,tOffset )
  472. }
  473. function GetObj( objId ){ return document.all.item( objId ) }
  474. function Offset( obj, top, left ){ obj.style.top=top; obj.style.left=left }
  475. function SetBorder( obj, upperLeft, lowerRight )
  476. {
  477.     s=obj.style;
  478.     s.borderStyle      = "solid"
  479.     s.borderWidth      = 1 
  480.     s.borderLeftColor  = s.borderTopColor = upperLeft
  481.     s.borderBottomColor= s.borderRightColor = lowerRight
  482. }
  483. function GetBtnObj(){ return gBtnArr[window.event.srcElement.id] }
  484. function BtnOnOver(){ b=GetBtnObj(); if( b != null ) b.SetActive() }
  485. function BtnOnDown(){ b=GetBtnObj(); if( b != null ) b.SetPressed() }
  486. function BtnOnOut(){ b=GetBtnObj(); if( b != null ) b.SetInactive() }
  487. function BtnOnUp()
  488. {
  489.     b=GetBtnObj()
  490.     if( b != null )
  491.         b.Perform()
  492.     else
  493.         Upd()
  494. }
  495. function GetNtsState(){ return parent.gNtsOpen }
  496. function GetOtlState(){ return parent.gOtlOpen }
  497. function GetOtlTxtState(){ return parent.gOtlTxtExp }
  498. function NtsBtnSetFlag( fVal )
  499. {
  500.     s=document.all.item( this.m_flagId ).style
  501.     s.display="none"
  502.     if( fVal )
  503.         s.display=""
  504.     else
  505.         s.display="none"
  506. }
  507.  
  508. var gHiliteClr="THREEDHIGHLIGHT",gShadowClr="THREEDSHADOW",gFaceClr="THREEDFACE"
  509. var gBtnArr = new Array()
  510. gBtnArr["nb_otl"] = new TxtBtn( "nb_otl","nb_otlElem",parent.ToggleOtlPane,GetOtlState )
  511. gBtnArr["nb_nts"] = new TxtBtn( "nb_nts","nb_ntsElem",parent.ToggleNtsPane,GetNtsState )
  512. gBtnArr["nb_prev"]= new ImgBtn( "nb_prev","nb_prevBorder",30,parent.GoToPrevSld )
  513. gBtnArr["nb_next"]= new ImgBtn( "nb_next","nb_nextBorder",30,parent.GoToNextSld )
  514. gBtnArr["nb_sldshw"]= new ImgBtn( "nb_sldshw","nb_sldshwBorder",18,parent.FullScreen )
  515. gBtnArr["nb_voice"]  = new ImgBtn( "nb_voice","nb_voiceBorder",18,parent.ToggleVNarration )
  516. gBtnArr["nb_otlTxt"]= new ImgBtn( "nb_otlTxt","nb_otlTxtBorder",23,parent.ToggleOtlText )
  517. gBtnArr["nb_nts"].m_flagId= "notes_flag"
  518. gBtnArr["nb_nts"].SetFlag = NtsBtnSetFlag
  519. gBtnArr["nb_otlTxt"].ChangeIcon= GetOtlTxtState
  520. var sNext="Next",sPrev="Previous",sEnd="End Show",sFont="Arial"
  521. function ShowMenu()
  522. {
  523.     BuildMenu();
  524.     var doc=PPTSld.document.body,x=PPTSld.event.clientX+doc.scrollLeft,y=PPTSld.event.clientY+doc.scrollTop
  525.  
  526.     m = PPTSld.document.all.item("ctxtmenu")
  527.     m.style.pixelLeft=x
  528.     if( (x+m.scrollWidth > doc.clientWidth)&&(x-m.scrollWidth > 0) )
  529.         m.style.pixelLeft=x-m.scrollWidth
  530.  
  531.     m.style.pixelTop=y
  532.     if( (y+m.scrollHeight > doc.clientHeight)&&(y-m.scrollHeight > 0) )
  533.         m.style.pixelTop=y-m.scrollHeight
  534.  
  535.     m.style.display=""
  536. }
  537. function _CM()
  538. {
  539.     if( !parent.IsFullScrMode() ) return;
  540.     if(!PPTSld.event.ctrlKey) {
  541.         ShowMenu()
  542.         return false
  543.     } else
  544.         HideMenu()
  545. }
  546. function BuildMenu()
  547. {
  548.     if( PPTSld.document.all.item("ctxtmenu") ) return
  549.  
  550.     var mObj=CreateItem( PPTSld.document.body )
  551.     mObj.id="ctxtmenu"
  552.     var s=mObj.style
  553.     s.position="absolute"
  554.     s.cursor="default"
  555.     s.width="100px"
  556.     SetCMBorder(mObj,"menu","black")
  557.  
  558.     var iObj=CreateItem( mObj )
  559.     SetCMBorder( iObj, "threedhighlight","threedshadow" )
  560.     iObj.style.padding=2
  561.     CreateMenuItem( iObj,sNext,M_GoNextSld,M_True )
  562.     CreateMenuItem( iObj,sPrev,M_GoPrevSld,M_HasPrevSld )
  563.     var sObj=CreateItem( iObj )
  564.     SetCMBorder(sObj,"menu","menu")
  565.     var s=sObj.style
  566.     s.borderTopColor="threedshadow"
  567.     s.borderBottomColor="threedhighlight"
  568.     s.height=1
  569.     s.fontSize="0px"
  570.     CreateMenuItem( iObj,sEnd,M_End,M_True )
  571. }
  572. function Highlight() { ChangeClr("activecaption","threedhighlight") }
  573. function Deselect() { ChangeClr("threedface","menutext") }
  574. function Perform()
  575. {
  576.     e=PPTSld.event.srcElement
  577.     if( e.type=="menuitem" && e.IsActive() )
  578.         e.Action()
  579.     else
  580.         PPTSld.event.cancelBubble=true
  581. }
  582. function ChangeClr( bg,clr )
  583. {
  584.     e=PPTSld.event.srcElement
  585.     if( e.type=="menuitem" && e.IsActive() ) {
  586.         e.style.backgroundColor=bg
  587.         e.style.color=clr
  588.     }
  589. }
  590.  
  591. function M_HasPrevSld() { return( parent.HasPrevSld() ) }
  592. function M_GoNextSld() { if( gIsEndShow ) M_End(); else GoToNextSld() }
  593. function M_GoPrevSld() { if( gIsEndShow ) { history.back(); PPTSld.event.cancelBubble=true; } else GoToPrevSld() }
  594. function M_True() { return true }
  595. function M_End() { window.close( self ) }
  596. function CreateMenuItem( node,text,action,eval )
  597. {
  598.     var e=CreateItem( node )
  599.     e.type="menuitem"
  600.     e.Action=action
  601.     e.IsActive=eval
  602.     e.innerHTML=text
  603.  
  604.     if( !e.IsActive() )
  605.         e.style.color="threedshadow"
  606.     e.onclick=Perform
  607.     e.onmouseover=Highlight
  608.     e.onmouseout=Deselect
  609.     s=e.style;
  610.     s.fontFamily=sFont
  611.     s.fontSize="8pt"
  612.     s.paddingLeft=2
  613. }
  614. function CreateItem( node )
  615. {
  616.     var elem=PPTSld.document.createElement("DIV")
  617.     node.insertBefore( elem )
  618.     return elem
  619. }
  620. function SetCMBorder( o,ltClr,rbClr )
  621. {
  622.     var s=o.style
  623.     s.backgroundColor="menu"
  624.     s.borderStyle="solid"
  625.     s.borderWidth=1
  626.     s.borderColor=ltClr+" "+rbClr+" "+rbClr+" "+ltClr
  627. }